

public class AppLogicCallBack  {
    private let TAG = String(describing:AppLogicCallBack.self)

 //  private static let TAG = String(describing:AppLogicCallBack.self)

    // private final var TAG = (NSStringFromClass(type(of: AppLogicCallBack)))
    /**
     * 连上IM时,一定是已经登录的用户
     */
    private var accountInfo=[888888:"kanjian-user"]// =  AccountInfo(888888, "kanjian-user");
    private static var  DEVICE_NAME:String = "ios"//android.os.Build.MANUFACTURER + "-" + android.os.Build.MODEL;
    private static var DEVICE_TYPE:String = "ios" //+ android.os.Build.VERSION.SDK_INT;
    private var info=[DEVICE_NAME,DEVICE_TYPE]// DeviceInfo(DEVICE_NAME, DEVICE_TYPE);

    /**
     * STN 会将配置文件进行存储，如连网IPPort策略、心跳策略等，此类信息将会被存储在客户端上层指定的目录下
     *
     * @return APP目录
     */
//    @Override
    public func getAppFilePath() ->String {
        var path = MsgUtils.getLogPath()//IMClient.getInstance().getContext()
        IMLog.d(tag:TAG,msg: "getAppFilePath:\(path)");
        return path;
    }

    /**
     * STN 会根据客户端的登陆状态进行网络连接策略的动态调整，当用户非登陆态时，网络会将连接的频率降低
     * 所以需要获取用户的帐号信息，判断用户是否已登录
     *
     * @return 用户帐号信息
     */
//    @Override
    public func getAccountInfo() ->Any{
        IMLog.d(tag:TAG,msg: "getAccountInfo");
        return accountInfo;
    }

    /**
     * 客户端版本号能够帮助 STN 清晰区分存储的网络策略配置文件。
     *
     * @return 客户端版本号
     */
//    @Override
    public func getClientVersion() ->Int {
        IMLog.d(tag:TAG, msg: "getClientVersion");
        return 0;
    }

    /**
     * 客户端通过获取设备类型，加入到不同的上报统计回调中，供客户端进行数据分析
     *
     * @return
     */
//    @Override
    public func  getDeviceType()->Any {
        IMLog.d(tag:TAG, msg: "getDeviceType");
        return info;
    }
}


